package com.shanzmoo.core.service;


import com.shanzmoo.core.domain.product.ProductSkuInfoVo;
import com.shanzmoo.db.product.entity.dto.ProductCategoryDTO;
import com.shanzmoo.db.product.entity.dto.ProductSpuDto;

import java.util.List;
import java.util.Map;

/**
 * 商品 redis 操作
 *
 * @author： Gzhao 2020/12/27
 */
public interface IProductBaseRedisService {


    /**
     * 获取所有spu 信息
     * @return
     */
    List<ProductSpuDto> obtainAllSpu();

    /**
     * 根据spuId 获取 spu 信息
     * @return
     * @param spuIds
     */
    List<ProductSpuDto> obtainAllSpu(List<String> spuIds);

    /**
     * 更新所有推荐商品信息
     */
    void updateAllRecommendSpu();

    /**
     * 获取 spu 商品图片 列表
     * @param spuId
     * @return
     */
    List<String> obtainTopPictureList(String spuId);

    /**
     * 获取商品详情页 底部详情图列表
     * @param spuId
     * @return
     */
    List<String> obtainInfoPictureList(String spuId);

    /**
     * 获取商品 sku
     * @param spuId
     * @return
     */
    List<ProductSkuInfoVo> obtainSkuList(String spuId);

    /**
     * 获取所有商品分类
     * @return
     */
    List<ProductCategoryDTO> obtainAllCategory();

    /**
     * 获取所有商品实际销量
     * @param spuIds
     * @return
     */
    Map<String,Integer> obatianSpuSalesMap(List<String> spuIds);

    Map<String,String> obtainSearchSpuList();
}
